package cn.vq3.kmsaiserver.kmsaiserver.pojo;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import org.json.JSONObject;

@Data
public class sendMessageEntity {
    /**说明：
     * （1）影响输出文本的多样性，取值越大，生成文本的多样性越强。
     * （2）默认0.8，取值范围 [0, 1.0]。
     * （3）建议该参数和temperature只设置1个。
     * （4）建议top_p和temperature不要同时更改。
     * */
    private double top_p;
    /**是否开启上角标返回*/
    private boolean enable_citation;
    /**通过对已生成的token增加惩罚，减少重复生成的现象。说明：
     * （1）值越大表示惩罚越大。
     * （2）默认1.0，取值范围：[1.0, 2.0]。
     * */
    private int penalty_score;
    /**说明：
    （1）较高的数值会使输出更加随机，而较低的数值会使其更加集中和确定。
    （2）默认0.95，范围 (0, 1.0]，不能为0。
    （3）建议该参数和top_p只设置1个。
    （4）建议top_p和temperature不要同时更改。。
    * */
    private double temperature;
    /**是否强制关闭实时搜索功能，默认false，表示不关闭*/
    private boolean disable_search;
    /**聊天上下文信息。*/
    private JSONObject messages;
    /**表示最终用户的唯一标识符，可以监视和检测滥用行为，防止接口恶意调用。*/

    @JSONField(serialize  = false)
    private String user_id;
    /** 模型人设，主要用于人设设定，例如，你是xxx公司制作的AI助手，说明：
     * （1）长度限制1024个字符
     * （2）如果使用functions参数，不支持设定人设system*/
    private String system;
    /**生成停止标识，当模型生成结果以stop中某个元素结尾时，停止文本生成*/
    private String stop;
    /**指定模型最大输出token数，范围[2, 2048]*/
    private String max_output_tokens;
    /**指定响应内容的格式*/
    private String response_format;
}
